﻿using System;
using System.Collections.Generic;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delphi.Mimir.Data.Entities.Final.Mappings {
    public class ClientMap : EntityTypeConfiguration<Client> {
        public ClientMap() {
            /******************************************************************
            /* Table
            /*****************************************************************/
            ToTable("fin.pfm_clients");

            /******************************************************************
            /* Primary Key
            /*****************************************************************/
            HasKey(a => a.ClientId);

            /******************************************************************
            /* Index
            /*****************************************************************/
            // None

            /******************************************************************
            /* Relationships
            /*****************************************************************/
            // 1..n Portfolio
            HasMany(a => a.Portfolios)
                .WithRequired(a => a.Client)
                .HasForeignKey(a => a.ClientId);

            /******************************************************************
            /* Properties
            /*****************************************************************/
            Property(a => a.ClientId)
                .IsRequired()
                .HasColumnName("clt_id");

            Property(a => a.FirstName)
                .IsRequired()
                .IsUnicode(false)
                .HasMaxLength(250)
                .HasColumnName("clt_first_name");

            Property(a => a.FamilyName)
                .IsRequired()
                .IsUnicode(false)
                .HasMaxLength(250)
                .HasColumnName("clt_family_name");
        }
    }
}
